home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 19 / CU Amiga Magazine's Super CD-ROM 19 (1998)(EMAP Images)(GB)[!][issue 1998-02].iso / CUCD / Programming / LEDA / prog / basic / param0.c < prev    next >
C/C++ Source or Header  |  1994-08-05  |  949b  |  72 lines

  1. #include <LEDA/list.h>
  2.  
  3.  
  4.  
  5. class D3_POINT
  6. {
  7.    double x;
  8.    double y;
  9.    double z;
  10.  
  11.    public:
  12.  
  13.    D3_POINT() { x = y = z = 0; }
  14.  
  15.    friend istream& operator>>(istream& I, D3_POINT*& p)
  16.    { p = new D3_POINT; 
  17.      I >> p->x >> p->y >> p->z; 
  18.      return I; 
  19.     }
  20.  
  21.    friend ostream& operator<<(ostream& O, D3_POINT* p)
  22.    { O << "(" << p->x << "," << p->y << "," << p->z << ")"; 
  23.      return O; 
  24.     }
  25.  
  26.    friend int compare(D3_POINT*, D3_POINT*);
  27.  
  28.  
  29.  };
  30.  
  31.  
  32. int compare(D3_POINT* p, D3_POINT* q) 
  33. { int b;
  34.   if (b=compare(p->x,q->x)) 
  35.      return b;
  36.   else 
  37.      if (b=compare(p->y,q->y)) 
  38.         return b;
  39.      else 
  40.         if (b=compare(p->z,q->z)) 
  41.            return b;
  42.         else 
  43.            return 0;
  44.  }
  45.  
  46.  
  47.  
  48. typedef D3_POINT* d3_point;
  49.  
  50.  
  51.  
  52. main()
  53. {
  54.   list<d3_point> L;
  55.  
  56.   L.read("L: ");
  57.   newline;
  58.  
  59.   L.print("input:");
  60.   newline;
  61.  
  62.   L.permute();
  63.   L.print("permuted:");
  64.   newline;
  65.  
  66.   L.sort();
  67.   L.print("sorted:");
  68.   newline;
  69.  
  70.   return 0;
  71. }
  72.